The present invention relates generally to the field of processing data that lies outside of a defined range, and more specifically to the solution of data processing problems, such as the year 2000 problem, that arise from programming conventions and techniques based on certain erroneous assumptions.
As the end of the current millennium approaches, many companies worry about data processing problems expected to occur in the year 2000. Programs written over the last few decades have represented the current year with only two decimal digits, assuming the first two digits always to be xe2x80x9c19.xe2x80x9d That assumption fails for the year 2000, and calculations involving that year may produce incorrect results.
The most common way of solving this problem has been to hire programmers familiar with the programs of concern or with the languages of those programs. Those programmers then study the code of the programs and change the code where appropriate. While certainly a direct approach, this solution has many problems.
One key problem is that of human error. This solution assumes that the programmer will find all of the relevant code problems, which is an unreasonable assumption for some applications that may have a million lines a code or more. Another problem arises from the assumption that the programming fixes will not cause other problems, such as calculations. A third problem is the cost of such an approach, which can be great because the task is so labor-intensive. Finally, documentation problems, as well as a scarcity of programmers, make this solution difficult to implement.
The year 2000 problem is representative of a larger class of programming problems involving invalid or overflow data. Data assuming an unanticipated value, such as exceeding an allowable range, does not necessarily mean the program is behaving improperly. For example, programming conventions may have made assumptions that are no longer valid.
A need exists for a technique to detect and correct these problems that is neither labor intensive nor susceptible to human error. Such a technique would save a great deal of resources and time, and provide high reliability.
Methods, and systems consistent with the present invention can detect out-of-range data conditions, such as when an overflow occurs or when the instruction attempts to operate on invalid data, during the execution of windowed code. Specifically, methods and systems consistent with the present invention maintain a list of instructions to be monitored and then execute the instructions with hexadecimal data. Such methods and systems can determine when a year 2000 problem exists with a particular instruction by comparing the list of instructions to be monitored with the instructions after the substituted data.
Methods consistent with the present invention, in a data processing system for monitoring the operation of a program, include creating a list of instructions in the program to be monitored, determining whether instructions from the list of instructions causes an error during execution of the program, and saving the determined instructions and data associated with the instruction when it is determined that instructions from the list causes an error.
Both the foregoing general description and the following detailed description provide examples consistent with this invention and explain how to make and use systems and methods consistent with the invention. These descriptions do not restrict the claimed invention.